<body>
   <pre id="error-log"></pre>
   <span id="container" style="color: green">
   </span>
   <span id="status" style="color: red">
      FAILURE
   </span>
</body>
<script>
    if (window.testRunner)
        testRunner.dumpAsText();

   // verify all standard cases
   document.getElementById("container").insertAdjacentText("beforeBegin", " 1 (black)");
   document.getElementById("container").insertAdjacentText("afterBegin", " 2 (green)");
   document.getElementById("container").insertAdjacentText("beforeEnd", " 3 (green)");
   document.getElementById("container").insertAdjacentText("afterEnd", " 4 (black)");

   function assertThrows(func) {
      var testPassed = false;
      try {
         func();
         document.getElementById("error-log").textContent += "Expected exception missing.\n";
      } catch (e) {
         document.getElementById("error-log").textContent += "Caught expected exception: " + e + "\n";
         testPassed = true;
      }
      return testPassed;
   }

   // check that exceptions are thrown as required
   var passes = true;
   passes = assertThrows(function() {
      // should throw SyntaxError
      document.getElementById("container").insertAdjacentText("blah", "text");
   }) && passes;

   passes = assertThrows(function() {
      // should throw TypeError
      document.getElementById("container").insertAdjacentText();
   }) && passes;

   passes = assertThrows(function() {
      // should throw TypeError
      document.getElementById("container").insertAdjacentText("afterBegin");
   }) && passes;

   if (passes) {
      document.getElementById("status").style.color = "green";
      document.getElementById("status").innerHTML = "<br><br>PASS";
   }
</script>
